from users.sms import constants
from users.sms.yuntongxun.ccp_sms import CPP



# 使用装饰器装饰异步任务，保证celery能够识别这个任务
@celery_app.task(bind=True, name='send_sms_code', retry_backoff=3)
def send_sms_code(self,mobile,sms_code):# 发送短信验证码
    """
    定义发送短信验证码的任务
    :param mobile: 需要发送短信验证码的手机号码
    :param sms_code: 本次需要发送的短信验证码内容
    :return: 短信验证码是否发送成功 0:表示成功 -1:表示失败
    """
    try:
        result = CPP().sendTemplateSMS(mobile, [sms_code, constants.SMS_CODE_REDIS_EXPIRES // 60],
                                       constants.SEND_SMS_TEMPLATE_ID)
        print("result=", result)
        return result
    except Exception as e:
        logger.error(e)
        # 有异常自动重试三次
        raise self.retry(exc=e, max_retries=3)
